/*
 * RectangularBoatShape.h
 *
 *  Created on: Jun 21, 2009
 *      Author: computer
 */

#ifndef RECTANGULARBOATSHAPE_H_
#define RECTANGULARBOATSHAPE_H_
#include <string>
using namespace std;
#include "OutOfBound.h"
#include "TooNearBoat.h"
#include "OverlapBoat.h"
#include "Arena.h"
#include "Dimension.h"

#include "Boat.h"

class RectangularBoatShape: public Boat {
public:
	RectangularBoatShape(const string&, const Point<int>&, const Dimension<int>&, char);
	virtual ~RectangularBoatShape();
	
	virtual bool fireToBoat(const Point<int>&, Arena*);
	virtual bool isDestroyed();
	virtual void write(Arena*) throw (OutOfBound, OverlapBoat, TooNearBoat);
	virtual void writeDestroyed(Arena*);

	unsigned int getWidth();
	void setWidth(unsigned int);

	unsigned int getHeigth();
	void setHeigth(unsigned int);
private:
	Dimension<int> size;
	bool** hitPoints;
	char fillChar;
};

#endif /* RECTANGULARBOATSHAPE_H_ */
